Start by creating an HTML form with a CAPTCHA field and an input field for the user to submit their response. The CAPTCHA field will display a random string of characters that the user needs to enter correctly.
```html
```
Create a PHP script to generate the random CAPTCHA string and display it as an image using GD library.
```php
session_start();
// Generate a random CAPTCHA string
$length = 6; // Length of the CAPTCHA code
$captcha_code = substr(str_shuffle("0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"), 0, $length);
// Save the CAPTCHA code in the session for later verification
$_SESSION['captcha_code'] = $captcha_code;
// Create an image with the CAPTCHA code
$width = 120;
$height = 40;
$image = imagecreate($width, $height);
$background_color = imagecolorallocate($image, 255, 255, 255);
$text_color = imagecolorallocate($image, 0, 0, 0);
imagestring($image, 5, 25, 12, $captcha_code, $text_color);
// Output the image as PNG
imagepng($image);
imagedestroy($image);
?>
```
Create another PHP script to handle the form submission and verify the user's response with the CAPTCHA code stored in the session.
```php
session_start();
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
// Validate the CAPTCHA response
if (isset($_POST['captcha']) && $_POST['captcha'] === $_SESSION['captcha_code']) {
// CAPTCHA code matches; process the form data here
// Clear the CAPTCHA code from the session
unset($_SESSION['captcha_code']);
// Add your form processing code here, e.g., saving data to a database
// ...
echo "Form submitted successfully!";
} else {
// CAPTCHA code does not match; display an error message
echo "CAPTCHA code is incorrect. Please try again.";
}
} else {
// Redirect users who access this page directly
exit();
}
?>
```
That's it! With the above code, you have created a basic CAPTCHA system using PHP. When users submit the form, the entered CAPTCHA code will be compared to the one stored in the session. If they match, the form data will be processed, and otherwise, an error message will be displayed. This simple CAPTCHA implementation should help protect your web form from automated abuse by bots. However, keep in mind that there are more sophisticated CAPTCHA solutions available, and this is just a basic example to get you started.